#ifndef INCLUDED_GAMESTATE_H
#define INCLUDED_GAMESTATE_H

#include <SGE.h>
using namespace SGE;
#include "GameContext.h"

enum NextState
{
	None,
	Frontend,
	Gameplay,
	GameOver,
	Win,
	Quit
};

class GameState
{
public:
	GameState(GameContext& gc);
	virtual ~GameState(void);	// deconstructs all backwards

	virtual void Load() = 0;
	virtual void Unload() = 0;
	virtual NextState Update(float deltaTime) = 0;
	virtual void Render() = 0;

protected:
	GameContext& mGameContext;
};

#endif // #ifndef INCLUDED_GAMESTATE_H

// const char* // what im pointing at cant change -
//													---> read backwards
// char* const // where im pointing cannot change -